package chapter02

import scala.math.Ordering.Byte

object Test08_DataTypeConversion {
  def main(args: Array[String]): Unit = {


    //自动类型转换
    //（1）自动提升原则：有多种类型的数据混合运算时，系统首先自动将所有数据转换成
    //精度大的那种数据类型，然后再进行计算。
    val a1: Byte = 10
    val b1: Long = 2353
    val result1: Int = (a1 + b1.toInt)
    println(result1)
    //（2）把精度大的数值类型赋值给精度小的数值类型时，就会报错，反之就会进行自动
    //类型转换。
    val a2: Byte = 10
    val b2: Int = a2
    //（3）（byte，short）和 char 之间不会相互自动转换。
    //（4）byte，short，char 他们三者可以计算，在计算时首先转换为 int 类型。
    val a3: Byte = 10
    val b3: Char = 'b'
    val c3: Byte = b3.toByte
    println(c3)
    val a4: Int = c3
    //2. 强制类型转换
    //（1）将数据由高精度转换为低精度，就需要使用到强制转换
    //（2）强转符号只针对于最近的操作数有效，往往会使用小括号提升优先级
    val n1: Int = -2.9.toInt
    println("n1: " + n1)
    //3.数值类型转为String
    val n: Int = 27
    val s: String = n.toString
    println(s)

    val m: Int = "12".toInt
    println(m)
  }

}
